Towards Verification of the Pastry Protocol Using TLA +
نویسندگان
چکیده
Pastry is an algorithm that provides a scalable distributed hash table over an underlying P2P network. Several implementations of Pastry are available and have been applied in practice, but no attempt has so far been made to formally describe the algorithm or to verify its properties. Since Pastry combines rather complex data structures, asynchronous communication, concurrency, resilience to churn and fault tolerance, it makes an interesting target for verification. We have modeled Pastry’s core routing algorithms and communication protocol in the specification language TLA. In order to validate the model and to search for bugs we employed the TLA model checker tlc to analyze several qualitative properties. We obtained non-trivial insights in the behavior of Pastry through the model checking analysis. Furthermore, we started to verify Pastry using the very same model and the interactive theorem prover tlaps for TLA. A first result is the reduction of global Pastry correctness properties to invariants of the underlying data structures.
منابع مشابه
Formal Verification Of Pastry Using TLA
Pastry [1, 2] is an algorithm that provides a scalable distributed hash table over an underlying P2P network. Several implementations of Pastry are available, but to the best of our knowledge the correctness of the algorithm has not been verified formally. Since Pastry combines rather complex data structures, asynchronous communication, concurrency, resilience to churn and fault tolerance, we b...
متن کاملModel Checking the Pastry Routing Protocol
Pastry is an algorithm for implementing a scalable distributed hash table over an underlying P2P network, an active area of research in distributed systems. Several implementations of Pastry are available and have been applied in practice, but no attempt has so far been made to formally describe the algorithm or to verify its properties. Since Pastry combines rather complex data structures, asy...
متن کاملA machine-checked proof of correctness of Pastry. (Une preuve certifiée par la machine de la correction du protocole Pastry)
A distributed hash table (DHT) is a peer-to-peer network that o↵ers the function of a classic hash table, but where di↵erent key-value pairs are stored at di↵erent nodes on the network. Like a classic hash table, the main function provided by a DHT is key lookup, which retrieves the value stored at a given key. Examples of DHT protocols include Chord, Pastry, Kademlia and Tapestry. Such DHT pro...
متن کاملSpecification and Verification of a Secure Distributed Voting Protocol
The Timed-Buffer Distributed Voting Algorithm (TB-DVA), a secure distributed voting protocol, is introduced and described. A formal specification of the algorithm is developed using Lamport’s specification language TLA+. Then strategies for proving the correctness of the specification using Lamport’s Temporal Logic of Actions (TLA) are discussed.
متن کاملA Rigorous Correctness Proof for Pastry
Peer-to-peer protocols for maintaining distributed hash tables, such as Pastry or Chord, have become popular for a class of Internet applications. While such protocols promise certain properties concerning correctness and performance, verification attempts using formal methods invariably discover border cases that violate some of those guarantees. Tianxiang Lu reported correctness problems in p...
متن کامل